// 购物车状态
export default {
  namespaced: true,
  state: () => ({
    CartList: []
  }),
  mutations: {
    addCartList (state, payload) {
      /**
       * 把商品添加购物车
       * 1.根据每一项商品的skuId判断所选商品规格是否已经存在
       * 用过数组的findIndex方法找到有shuId属性的一项===>有返回具体索引值 没有返回-1
       * 如果存在只要给数量增加就行
       * 不存在则unshift把商品信息存入CartList中
       */
      const goodsIndex = state.CartList.findIndex(item => item.skuId === payload.skuId)
      if (goodsIndex > -1) {
        // 说明已经存在商品让对应的商品数量增加就行
        state.CartList[goodsIndex].count += payload.count
      } else {
        // 新增商品往前追加
        state.CartList.unshift(payload)
      }
    }
  },
  actions: {
    asyncAddCartList ({ commit, rootState }, goodsObj) {
      /**
       * 异步添加购物车===>判断是在登录还是在为登录的状态下
       * 登录:调用接口把数据存到后台
       * 未登录:调用mutations方法存到state中
       * 核心:根据user模块的profile个人信息查看有无token ===>用上下文的rootState属性可以拿到其他模块的数据
       */
      if (rootState.user.profile.token) {
        // token存在为 登录状态 调用后台接口
      } else {
        // 未登录状态直接调用action方法
        commit('addCartList', goodsObj)
      }
      return '添加购物车成功'
    }
  },
  getters: {
    : state => {
  return state.
}
  }
}
